[GAS]Jamf Pro APIを利用して指定したPCのCPUに応じて処理を行う方法
- t_o_dと申します。
- Jamf Proでのデバイス管理の際に、Jamf Pro APIを利用すると容易に情報を取得することができます。
- そこでGASを利用して指定したPCのCPUに応じて処理を行う方法を記録いたします。
環境
- mac OS Monterey 12.6
- Google Apps Script
準備
- Jamf Pro APIを利用するためのアカウントを用意してこちらを確認して利用するAPIに以下の権限を付与してください。
- Read Computers
手順
スクリプトエディタ起動
- Googleドライブを開き、新規で「Google Apps Script」を作成してスクリプトエディタを起動してください。
プロパティ設定
- スクリプトエディタを開いたら、スクリプトプロパティに以下の内容を設定してください。
プロパティ | 値 |
---|---|
JAMF_API_BASE | Jamf API URL |
JAMF_API_BASIC_TOKEN | Jamfユーザー名:Jamfパスワード 例: ユーザー名がaaa、パスワードがbbbであれば「aaa:bbb」となる。 |
コード記述
- プロパティ設定後、以下の内容をスクリプトエディタの任意のgsファイルに記述してください。
const properties = PropertiesService.getScriptProperties().getProperties(); const baseApi = properties.JAMF_API_BASE function main(){ const bearerToken = getBearToken() const pcName = '対象PC名'; const pcId = getPcId(bearerToken,pcName); if(pcId === '') return; // CPU情報の取得 const processorType = getProcessorType(bearerToken,pcId); // Intelの場合 if(/Intel/.test(processorType)){ console.log('このPCはIntel Macです。'); return; } // M1の場合 if(/M1/.test(processorType)){ console.log('このPCはM1 Macです。'); return; } // M2の場合 if(/M2/.test(processorType)){ console.log('このPCはM2 Macです。'); return; } } // Bearerトークン取得 function getBearToken(){ const basicToken = Utilities.base64Encode(properties.JAMF_API_BASIC_TOKEN) const res = UrlFetchApp.fetch(`${baseApi}/auth/token`, { method: 'post', headers: { 'Authorization': `Basic ${basicToken}`, }, }); const json = JSON.parse(res.getContentText()); return json.token } // PC名からPCのIDを取得 function getPcId(bearerToken,pcName){ try { const res = UrlFetchApp.fetch(`${baseApi}/computers-inventory?filter=general.name==${pcName}`,{ method: 'get', headers: { 'Authorization': `Bearer ${bearerToken}`, }, }) const json = JSON.parse(res.getContentText()) return json.results[0].id }catch(e){ return '' } } // PCのIDからCPU情報を取得 function getProcessorType(bearerToken, pcId){ const res = UrlFetchApp.fetch(`${baseApi}/computers-inventory-detail/${pcId}`,{ method: 'get', headers: { 'Authorization': `Bearer ${bearerToken}`, } }) const json = JSON.parse(res.getContentText()) return json.hardware.processorType }
実行
- コード記述後、7行目の「対象PC名」を任意の値に修正します。
- 修正後、main関数を実行して実行ログを確認します。
- 例としてIntel MacとM2 Macを対象としたログが以下となれば正常です。
- 以上です。
まとめ
- 今後もJamf APIのさまざまなサービスを適宜利用していき、日々の業務改善に努めてまいります。
参考
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。